import { app } from './cloudbase';

/**
 * 调用云函数
 * @param {string} name - 云函数名称
 * @param {Object} data - 请求参数
 * @returns {Promise} 云函数执行结果
 */
export const callFunction = async (name, data = {}) => {
  try {
    // 确保已登录
    const auth = app.auth();
    const loginState = await auth.getLoginState();
    
    if (!loginState || !loginState.isLoggedIn) {
      await auth.signInAnonymously();
    }
    
    // 调用云函数
    const result = await app.callFunction({
      name,
      data
    });
    
    return result;
  } catch (error) {
    console.error(`调用云函数 ${name} 失败:`, error);
    throw error;
  }
};

/**
 * 保存文本转换记录
 * @param {Object} record - 转换记录
 * @param {string} record.input - 输入文本
 * @param {string} record.output - 输出文本
 * @param {Object} record.options - 转换选项
 * @returns {Promise} 保存结果
 */
export const saveTextConversionRecord = async (record) => {
  return callFunction('text-converter', {
    action: 'save',
    ...record
  });
};

/**
 * 获取文本转换记录
 * @param {Object} params - 查询参数
 * @param {number} params.limit - 返回记录数量限制
 * @param {number} params.offset - 分页偏移量
 * @returns {Promise} 查询结果
 */
export const getTextConversionRecords = async (params = {}) => {
  return callFunction('text-converter', {
    action: 'get',
    ...params
  });
};

/**
 * 删除文本转换记录
 * @param {string} recordId - 记录ID
 * @returns {Promise} 删除结果
 */
export const deleteTextConversionRecord = async (recordId) => {
  return callFunction('text-converter', {
    action: 'delete',
    recordId
  });
};

/**
 * 清空文本转换记录
 * @returns {Promise} 清空结果
 */
export const clearTextConversionRecords = async () => {
  return callFunction('text-converter', {
    action: 'clear'
  });
};